// 此文件一定要在src目录下面
// 此文件它是脚手架在运行时去调用的文件，运行它是在nodejs环境，模块化commonjs
// 在此文件是设置网络请求代理，还需要安装一个代理插件
// 此文件一但被修改，则一定要重启项目
// npm i -D http-proxy-middleware
// 当前的项目在开发时运行的环境为nodejs的express环境
// const { createProxyMiddleware: proxy } = require('http-proxy-middleware')
const { createProxyMiddleware: http } = require('http-proxy-middleware')
const path = require('path')
const fs = require('fs')

// 得到mock的绝对路径
const mockRootPath = path.resolve('./mock')
// 读取指定目录下面的文件
const files = fs.readdirSync(mockRootPath)

// 映射得到mock目录下面所有的文件模块
const mocks = files.map(file => {
  const fn = require(path.join(mockRootPath, file))
  return fn
})


// app它就是一个express中的Application对象
// 可以通过express来mock接口数据
module.exports = app => {

  // filmMockFn(app)
  // userMockFn(app)
  mocks.forEach(fn => fn(app))

  // 参数1：要去匹配的url前缀，只要是以/api开头请求地址，则走代理
  // 参数2: 要去代理处理的函数
  app.use('/api', http({
    target: 'http://localhost:9000',
    changeOrigin: true,
    pathRewrite: {
      '^/api': ''
    }
  }))
}